异步等待回调不是一个函数

这个问题在这里已经有了答案:

  • 如何将现有的回调API转换为承诺? 17个答案

  • 基本上,你必须检查它是否会返回诺言 - 你可以使用它的框。 如果没有 - 你可以promisify你需要的功能。 结果是这样的:

    function saveModel(transaction) {
      return new Promise ((resolve, reject) => {
        transaction.save(err => {
          if (err) 
             reject(err);
          else
             resolve();
        });
      });
    }
    

    这样的功能可以与async / await一起使用:

    async create(){
      let transaction = new Transaction({name:'Couch'});
        try{
          await saveModel(transaction);
        } catch (err) {
          console.log(err);
        }
    }
    

    另一种选择是查看源文件,但我懒得去做。

    链接地址: http://www.djcxy.com/p/55533.html

    上一篇: async await callback is not a function

    下一篇: Promisifying Callbacks in Node.js