【发布时间】:2016-01-17 23:21:12
【问题描述】:
我找不到一个很好的方法来做到这一点,但这是我的基本方法。它的目标是观察对象的状态,直到找到与正则表达式匹配的消息。
Cylon.waitForMessage(regex) {
check(regex, RegExp);
const observer = this.connections.find({
name: 'messages'
}).observe({
changed: function (doc) {
console.log(doc.lastMessage) // this is the last message to scan.
}
});
let promise = new Promise((resolve, reject) => {
// need to find the last message here and check if it matches regex
}).then(() => observer.stop());
return Promise.await(promise);
}
执行此操作的适当方法是什么?在 Promise 完成后如何停止监听器或观察者?
【问题讨论】:
-
为什么不直接从
changed函数内部阻止观察者呢?在该函数上测试消息,如果它通过就停止观察者。 -
因为我需要它等待消息再继续下一步,否则它会尝试一次发送太多命令。
标签: javascript meteor promise ecmascript-2016