在方法中返回结果aSync函数

时间:2016-02-23 13:22:55

标签: javascript asynchronous

首先,我完全阅读了this问题的所有答案,但尽管如此我才意识到经过多年的脚本编写后,我最终陷入了aSync地狱。

我有一个使用异步函数的方法。根据该函数的结果,该方法应返回true或false。

所以,简单地说:

example = {
    overview: undefined,
    aSyncFunction: function (callback) {
        // Adds values to overview, which we will use in otherFunction
        callback();
        return this;
    },

otherFunction: function (data) {
    var result = false;

    this.aSyncFunction( function () {
        var available = this.overview[data.name];
        // result == filter overview with supplied data)
    }.bind(this));

    return result;
  }
};

我已经创建了一个JsFiddle来向您展示我所处的确切情况:https://jsfiddle.net/copt436a/1/

删除setTimeOut将传递true,否则为false。

注意,我目前无法更改 aSyncFunction ,因此解决方案必须位于 otherFunction

中的某处

我试图在不同的函数中分离回调函数,但在这种情况下,返回值卡在该特定函数中 otherFunction 保持返回undefined。另外使用aSyncFunction的返回值不会给我我想要的结果,因为这会返回 this

我完全坚持这个,可能解决方案很简单。

0 个答案:

没有答案