基于承诺的财产Ember

Jon*_*ops 7 javascript promise ember.js ember-cli

我有一个控制器,有一个searchQuery和建议属性.建议来自AJAX请求.如何在控制器中将建议属性作为承诺?

app/controllers/application.js

import Ember from 'ember';

const { computed, $ } = Ember;

export default Ember.Controller.extend({
  searchQuery: '',
  suggestions: computed('searchQuery', function() {
    return $.getJSON(`songs/search.json?q=${this.get('searchQuery')}`);
  })
});
Run Code Online (Sandbox Code Playgroud)

Kin*_*n2k 9

我假设你的意思是,我怎样才能从承诺中得到结果,因为你要向suggest属性返回一个承诺.

searchQuery: '',

suggestions: [],

suggestionsUpdater: Ember.observer('searchQuery', function(){
  var self = this;
  Ember.$.getJSON('songs/search.json?q=' + this.get('searchQuery')).then(function(data){
    self.set('suggestions', data);
  });
})
Run Code Online (Sandbox Code Playgroud)

只有少数几个地方你可以返回/发送一个承诺和余烬,假设你不想存储承诺.模型钩子和transitionTo/transitionToRoute方法.其余的时间他们会留给你,以防你真的想跟踪承诺.