Ecmascript 6 返回数组的函数中的承诺?

Ecmascript 6 返回数组的函数中的承诺?,ecmascript-6,es6-promise,apollostack,Ecmascript 6,Es6 Promise,Apollostack,在下面的代码中,updateQuery是由我正在使用的npm模块提供的,因此我无法修改它。我想将一些信息附加到一个对象,newsmg,该对象将通过updateQuery返回。我必须用承诺来获取信息 有没有办法做到这一点 subscribe(fromID, toID, updateQuery) { this.subscriptionObserver = this.props.client.subscribe({ query: IM_SUBSCRIPTION_QUERY,

在下面的代码中,
updateQuery
是由我正在使用的npm模块提供的,因此我无法修改它。我想将一些信息附加到一个对象,
newsmg
,该对象将通过
updateQuery
返回。我必须用承诺来获取信息

有没有办法做到这一点

subscribe(fromID, toID, updateQuery) {
   this.subscriptionObserver = this.props.client.subscribe({
        query: IM_SUBSCRIPTION_QUERY,
        variables: { fromID: this.fromID, toID: this.toID },
    }).subscribe({
        next(data) {
            const newMsg = data.IMAdded;

            //ATTACH INFO TO newMsg HERE VIA A PROMISE?

             updateQuery((previousResult) => {
             return  update(
                    previousResult,
                    {
                        instant_message: {
                            $push: [newMsg],
                        },
                    }
                );
            });
        },
        error(err) {
            console.error('err', err); },
    });
}

因为承诺表示将来可能提供的数据,所以此时您可以从函数返回的只是承诺本身(而不是数据),因为您还没有数据

需要数据的调用者,然后从返回的数据中获得承诺,并对其执行
p.then()
以访问数据。因此,将承诺放在返回的数据结构中,然后调用方可以从那里访问承诺

另一种选择是只从函数返回一个承诺,并且所有返回的数据都是该承诺的解析值