在这种情况下,我将如何使用 javascript 创建一个承诺函数
How would i create a promise function in this situation with javascript
我目前正在使用 angularjs 构建一个应用程序,并使用 mediafire javascript SDK 来完成一些任务。
现在我的情况是,当上传发生时,我需要创建一个文件夹,此函数返回一个"文件夹键"。现在,为了保持控制器中的代码干净,我想在我的服务函数上使用 .then 以继续上传新文件的过程。
我已经做了相当多的研究,但我仍然对如何做感到困惑。也许在我的情况下举一个例子会帮助我了解需要做什么。
当前对我的服务运行此功能,这将创建一个文件夹。
mediafireService.createFolder('TestFolder');
我想要拥有
mediafireService.createFolder('TestFolder');
.then(function(folderkey){
//Upload file into that folder
});
这是我的工厂功能。
function createFolder(folderName){
var options = { foldername: folderName };
login(function(){
app.api('folder/create', options, function(data) {
console.log(data.response.folderkey);
return data.response.folderkey;
});
});
}
function login(callback){
app.login({
email: 'email',
password: 'pass'
}, callback);
};
四处阅读,我不完全确定javacript是否本机具有此功能,或者我们是否必须为此使用外部服务。 此刻有点迷失了。
任何帮助将不胜感激,谢谢。
基本上,
您没有在服务的createFolder
函数中创建任何承诺。您可以使用$q
依赖项构建自定义承诺。
从方法返回延迟承诺,并根据服务器回复解决或拒绝该承诺。
服务
function createFolder(folderName) {
var deferred = $q.defer();
var options = {
foldername: folderName
};
login(function() {
app.api('folder/create', options, function(data) { //success
console.log(data.response.folderkey);
//this line will promise resolve
//also it will send the folderKey to the consumer method.
deferred.resolve(data.response.folderkey);
}, function(data) { //error
//this line will promise reject with error msg
deferred.reject('error ocurred');
});
});
return deferred.promise;
};
控制器
mediafireService.createFolder('TestFolder').then(function(folderkey){
//Upload file into that folder
}, function(error){
//error handling
});
相关文章:
- 从javascript创建一个列表
- 使用Javascript创建测验页面
- 获取对使用Tampermonkey使用javascript创建的元素的引用
- Jquerymobile-使用javascript创建选择菜单
- 使用SVG和JavaScript创建波浪动画
- 用javascript创建一个看起来正常分布的模式
- 如何在Ol3弹出窗口中添加用javascript创建的按钮上的点击事件
- 在PHP邮件中发送javascript创建的内容
- Knockout绑定是膨胀的html(表单元格),如何使用javascript创建绑定或从父元素绑定
- 重置使用javascript创建的新tr的val
- 如何使用javascript创建颜色数组
- javascript创建日期的月份错误
- 如何使用JavaScript创建时间计数器
- 使用Javascript创建内部样式表
- 用javascript创建另一个对象的实例
- 如何使用HTML、CSS和JavaScript创建自动图片库幻灯片
- 使用Javascript创建的Cookie在C#代码中不可访问..任何原因或其他选择
- 用javascript创建对象的dynamic数组
- Javascript创建函数,以便在其他函数之间共享变量
- 使用javascript创建幻灯片效果