Как я могу вызвать функцию JavaScript с потоком или задачей? - PullRequest
0 голосов
/ 23 мая 2019

Я попробовал следующий код ниже

.cs

    string someone = "John";
    int timer = 3000;
    int check = 1;
    string script = "<script> runPromise('" + someone + "'," + timer + "," + check + ").then(someone => { console.log('" + someone + "', someone)});</script>";
    ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", script);

.aspx

<script>
    let runPromise = (someone, timer, check, success = true) => {
        console.log(`${someone} start run`);
        console.log(check);
      return new Promise((resolve, reject) => {
        if (check == 1) {
          setTimeout(function () {
            resolve(`${someone} run ${timer / 1000} second`);
          }, timer);
        } else {
          reject(`${someone} fail`)
        }
      });
    }
</script>

этот код может работать только в кнопке.

Как я могу использовать его в цепочке или задаче, когда хочу подождать около 10 секунд?

Любая помощь будет высоко оценена.

1 Ответ

0 голосов
/ 23 мая 2019

Вы можете попробовать позвонить по обещанию с setTimeout

Отредактировано

string someone = "John";
int timer = 10000;
int check = 1;
string script = "<script> setTimeout(() => someFunction(('" + someone + "'," + timer + "," + check + ").then(value => {console.log(value);}), " + timer + ");</script>";
ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", script);

var someFunction = (someone, timer, check) => {
  console.log(`${someone} start run`);
  console.log(check);

  return new Promise((resolve, reject) => {
    if (check == 1) {
      resolve(`${someone} run ${timer / 1000} second`);
    } else {
      reject(Error("It broke"));
    }
  });
};

образец:

var someFunction = (someone, timer, check) => {
  console.log(`${someone} start run`);
  console.log(check);
  
  return new Promise((resolve, reject) => {
    if (check == 1) {
      resolve(`${someone} run ${timer / 1000} second`);
    } else {
      reject(Error("It broke"));
    }
  });
};

setTimeout(() => someFunction(`someone`, 10000,1).then(value => {
console.log(value);
}), 10000);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...