为什么然后不工作在这个功能上

use*_*115 5 javascript

我尝试在其中一个承诺实现中测试 MDN 中给出的示例。它给了我如下错误。

错误

Uncaught TypeError: doSomething(...).then is not a function
    at promise.js:16
Run Code Online (Sandbox Code Playgroud)

JS文件

function successCallback(result) {
    console.log("Success" + result);
}

function failCallback(fail) {
    console.log('fail' + fail);
}

function doSomething(successCallback, failCallback) {
    return "Yello";
};

doSomething(successCallback, failCallback);


doSomething().then(successCallback,failCallback);
Run Code Online (Sandbox Code Playgroud)

Jon*_*lms 6

使用async更容易:

async function doSomething() {
  return "Yello";
};

doSomething().then(console.log);//Yello
Run Code Online (Sandbox Code Playgroud)

要启用错误处理,只需抛出一个错误:

async function isMultiple(a,b) {
   if(a%b===0){
      return true;//success
   }
      throw "not a multiple";
};

isMultiple(5,2).then(console.log).catch(console.log);//not a multiple in catch
Run Code Online (Sandbox Code Playgroud)

请注意,异步函数是 ES7 的一部分(非常非常新)...

乱码