网站搜索
我正在使用基本的 karma/jasmine 配置来测试我的 Angular 代码。 这是我的测试:
var $controllerConstructor, ctr, mockSuperheroData, scope, deferred, q; describe('main controller', function() { var $controllerConstructor, ctr, mockSuperheroData, scope, deferred, q; beforeEach(inject(function($controller, $rootScope 阅读更多 →
有人能解释一下为什么在以下示例中,foo() 返回的是整个 promise 而不仅仅是数据吗?以及如何让 foo() 只返回数据?
var foo = function() { var promise = $.ajax({ type: 'POST', url: 'http://example.com' }) return promise.done(function(data) { return data }) } console.log(foo())谢谢!
Don
阅读更多 →
我的 Promise 返回代码有问题,我有一个函数 getTagQuotes,它包含一个 for 循环,该循环可以多次调用 API 将数据返回到数组中。
我的这段代码如下开始:
// If there are tags, then wait for promise here: if (tags.length > 0) { // Setting promise var to getTagQuotes: var prom 阅读更多 →
我想让对象请求一个 JavaScript promise,但我不希望它们创建单独的 promises。我想实现的逻辑如下——检查一个 promise 是否处于 pending 状态,只有在不是 pending 时才创建一个新的 promise。这可能吗?根据文档,我无法检查 promise 的状态,我只能在它被 fulfilled 之后处理它,但我不想为每个 promise 请求调用处理函数,也不想运行多个 Promises,如果一个 Promise 的回调可以响应所有过去的请求...
我尝试通过这种方式解决的问题是从外部服务器获取数据,并在接收到数据后通过事件将其广播给多个对象
阅读更多 →
Mozilla 的 JavaScript 文档中的 Promises(参见 API 页面)和 jQuery 的 Promises(参见 API 页面)有什么区别?
Mozilla 的 Promise 似乎只有两种方法:then 和 catch。jQuery 的 Promise 似乎有更多的方法,包括:then、done 和 fail。(来自这里)
为什么 Mozilla 上的 JS API 没有 done()?如果我想在 JavaScript 中实现 done
阅读更多 →
我稍后会解释为什么我想这么做。问题如下。我有一个返回 Promise 的函数,如下所示:
const testFunc = () => { return new Promise((resolve, reject) => { setTimeout(() => { if (Math.random() > 0.5) { resolve('succeeded'); } else { reject('failed'); } }, 1000); }); };不出
阅读更多 →
请注意:以下是一个在不同浏览器上表现不同的问题。因此,这可能是浏览器实现的问题。不管怎样,我仍然希望得到一些建议。
在我的应用程序中,我正在创建几个可能要在相当长的一段时间之后才使用的承诺。这应该没问题,毕竟它们是承诺。
如果所存储的承诺被解决了,就没有问题。我可以在未来任意时间使用它,并且可以使用任意次数。正如预期的那样。
然而,如果被存储的承诺被拒绝,就会出现问题。除非我在拒绝发生后不久(不确定具体多久)处理这个拒绝,否则在 Chrome 或 Firefox 中
阅读更多 →
在我的 AngularJs 应用中使用 music-frequency-d3 进行音频可视化,使用 music-frequency-d3 创建了一个 bower 组件,但是当我将音频的网页地址作为 src 属性的值插入时,它显示以下错误。
未捕获的(在 promise 中)DOM 异常:该元素没有受支持的资源
这里有什么问题?我如何使用网页地址 URL 播放音频?
谢谢
这是跨域访问限制问题
添加
阅读更多 →
我正在尝试将回调函数转换为 async/await。代码使用主窗口框架向 iframe 发送 postMessage。当 iframe 发送消息回来的时候,它会调用回调函数。有没有办法将 $ (window).on(...) 模式转换为 Promise?
可运行代码的最小版本:
调用函数:
window.bridge.post(cb);桥对象:
class Bridge { constructor(win, root) { this.win 阅读更多 →
拿这段代码,我们有一个承诺(promise)调用一个会失败的函数,它应该将错误传递给承诺的 catch 方法。 从终端运行时完全正常。但是通过 VSCode 运行时,会在 (1) 处爆炸。
function failingFunc() { let undef = undefined; return undef.nope(); } let promise = new Promise((resolve, reject) => { resolve(failingFunc()); // (1) Explodes when run from vscode }); promise.then(v => {}).catch((e: Error) => { console.log(e.message); // (2) Prints when run from the terminal });这是为什么?
vscode 关于页面:
阅读更多 →