JavaScript promise 初学者

标签 javascript promise

我最近一直在尝试学习 Promise,但是遇到了障碍?任何建议:你能告诉我,我在这里做错了什么吗?

function printstring(string) {
  return new promise( function (resolve,reject) {
    setTimeout(function () {
      document.write(string);
      resolve();
    }, Math.floor(Math.random() * 100) + 1;)
  })
}

function printall() {
  printstring("A")
    .then(function () { return printString("C"); })
}

printall();

最佳答案

您的代码中有很多拼写错误。

  • promise 应该是 Promise,大写 P
  • printString("C") 应为 printstring("C")
  • Math.floor(Math.random() * 100) + 1;) 应该是 Math.floor(Math.random() * 100) + 1);

如果您想观察 setIntervalPromise 在这种情况下如何工作,请增加其延迟(尽管它适用于任何值)。

function printstring(string) {
  return new Promise( function (resolve,reject) {
    setTimeout(function () {
      document.write(string);
      resolve();
    }, Math.floor(Math.random() * 1000) + 1);
  })
}

function printall(){
  printstring("A")
    .then(function () { return printstring("C"); })
}
printall();

请注意,避免使用 document.write(string);,这实际上是一种将内容放置到网站的旧式方式。请改用 innerHTMLtextContent 之类的内容。在这种特殊情况下,您可以将该行替换为 document.body.textContent += string;

关于JavaScript promise 初学者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50782208/

相关文章:

JavaScript 将事件从一个窗口传递到另一个窗口

javascript - 我怎样才能获得 promise 的值(value)?

javascript - Angular : can a controller watch server properties?

javascript - 是否可以继续暂停的异步函数? (2)

JavaScript : Never returns from await

javascript - 清除Jquery UI对话框输入框

javascript - 向 ASHX 处理程序发送大量数据

javascript - 在javascript中将unicode转换为货币符号

javascript - 未使用数据表 moment-with-locale 解码日期进行排序(因此用作字符串)

javascript - 使用 async/await 时,Firebase Cloud Firestore 查询返回 Promise { <pending> } 而不是 fulfilled