PromiseKit

iOS 异步开发
授权协议 MIT
开发语言 Objective-C Ruby Swift
所属分类 手机/移动开发、 iOS/iPhone/iPad开发包
软件类型 开源软件
地区 不详
投 递 者 万俟招
操作系统 OS X
开源组织
适用人群 未知
 软件概览

现代化的开发都要求高度异步,iOS 开发也是一样,PromiseKit 能提供强大的 iOS 开发异步功能,非常容易使用。

PromiseKit 不仅仅是 Promises 的实现,还是辅助函数的集合,使得 iOS 开发典型的异步模式更强大。

PromiseKit 支持集成到其他 Cocoapods,如果用户的库有异步操作,而又喜欢使用 PromiseKit,则可以添加了一个可选的缺省子说明书,提供 Promises 服务,文档会帮助集成 PromiseKit 到用户自身的 pods 中。

示例:

[CLLocationManager promise].catch(^{
    return self.chicagoLocation;}).then(^(CLLocation *loc){
    return [NSURLConnection GET:@"http://user.net/%f/%f", loc.latitude, loc.longitude];}).then(^(NSDictionary *user){
    UIAlertView *alert = [UIAlertView new];
    alert.title = [NSString stringWithFormat:@"Hi, %@!", user.name];
    [alert addButtonWithTitle:@"Bye"];
    [alert addButtonWithTitle:@"Hi!"];
    return alert.promise;}).then(^(NSNumber *tappedButtonIndex, UIAlertView *alert){
    if (tappedButtonIndex.intValue == alert.cancelButtonIndex)
        return nil;
    id vc = [HelloViewController new]
    return [self promiseViewController:vc animated:YES completion:nil].then(^(id resultFromViewController){
        //…
    });}).catch(^(NSError *err){
    //…});

 

  • PromiseKit:https://github.com/mxcl/PromiseKit RWPromiseKit:https://github.com/deput/RWPromiseKit RWPromise *promise = [RWPromise promise:^(ResolveHandler resolve, RejectHandler reject) { //pos

  • 话说 Swift 3.0 已经推出了一段时间了,PromiseKit 也已经升级至 4.1.7(5.0仍然是 alpha 版)和 Swift 3.0。PromiseKit 支持 O-C 和 Swift,但如果你真的需要在你的 O-C 项目中使用 PromiseKit ,仍然不是那么容易。 使用 CocoaPods 安装 很简单:pod “PromiseKit”, “~> 4.0” 就可以了。 不幸

  • 独立博客 ZYF.IM 在 GitHub Trending 中总是看到 mxcl/PromiseKit 它是主要解决的是 “回调地狱” 的问题,决定尝试用一下。 环境:Swift 4.2、PromiseKit 6 then and done 下面是一个典型的 promise 链式(chain)调用: firstly { login() }.then { creds in fetch

  • 背景 之前就了解到js中有Promise这么一个东西,可以很友好的实现异步方法,后来偶然在一段ios开源代码中看到这么一段用法: firstly { login() }.then { creds in fetch(avatar: creds.user) }.done { image in self.imageView = image } 复制代码 眼前一亮,firstly第

  • promisekit objc使用 #ios 1.没有swift的最低版本 pod "PromiseKit", "~> 1.7.7" 2.adapter的使用 - (PMKPromise *)testPromiseKit { return [PMKPromise promiseWithAdapter:^(PMKAdapter adapter) { dispatch_aft

  • 一、PromiseKit介绍 PromiseKit,优雅的的管理多个异步操作,让你从此远离多层嵌套。 用一个例子作比较: 需求:先注册,后登录,提示登录成功。 // 常规方法:嵌套执行多个任务 [self signUpWithUserName:uid pwd:pwd resultBlock:^(BOOL success, NSString *message) { if (success)

  • Demo地址:https://github.com/jzhw0130/PromiseKitDemo  GitHub地址 功能很简单,模拟了一个用户登录的过程:登录,下载用户信息、更新用户信息。  因为3个操作都是异步完成,且需要顺序调用,这样,就会写成这样(功能是没问题,看着是挺乱的吧。。。): userLogin {         if success {             downlo

  • Moya是基于Alamofire网络框架上进行的封装,支持RXSwift 创建模型 import Foundation /// 实用泛行实现通用格式 public struct ResponseData<T>: Codable where T: Codable { let code: String let message: String let data: T? }

  • [!] Error installing PromiseKit pod install 的时候,PromiseKit这个框架更新报错 [!] Error installing PromiseKit [!] /usr/bin/git -C /var/folders/k1/96lj0hk91js5fh5lhxnl7s740000gn/T/d20210812-14928-1aspre6 submodul

 相关资料
  • 异步操作在线程中执行,与主应用程序线程分开。当应用程序调用方法异步执行操作时,应用程序可以在异步方法执行其任务时继续执行。 示例 下面通过一个例子来理解这个概念。在示例程序中使用IO库接受用户输入。 是一种同步方法。它将阻止执行函数调用之后的所有指令,直到方法完成执行。 等待输入。它停止执行并且在收到用户输入之前不再执行任何操作。 以上示例将产生以下输出 - 在计算中,当某个事件在继续之前等待事件

  • 支持Python异步。包括对Core和ORM使用的支持,使用了异步兼容的方言。 1.4 新版功能. 注解 从SQLAlChemy 1.4.3开始的异步扩展现在可以被认为是 测试级 软件。API细节可能会更改,但是在这一点上,不太可能有重大的向后不兼容更改。 参见 对内核和ORM的异步IO支持 -初始功能发布 异步集成 -示例脚本演示了asyncio扩展中核心和ORM使用的工作示例。 Asyncio

  • 本文向大家介绍SpringBoot开启异步调用方法,包括了SpringBoot开启异步调用方法的使用技巧和注意事项,需要的朋友参考一下 异步调用无需等待,方法相当于子线程,后台执行,主线程执行完成,子线程开始执行。 SpringBoot 开启异步执行仅需两步: 方法上加 @Async main 方法 开启 @EnableAsync controller 执行结果 可以看到 controller 先

  • 问题内容: 同步和异步AJAX调用有什么区别?何时使用同步以及何时异步? 问题答案: 在最基本的级别上,当您希望调用在后台发生时,您可以使用异步模式,而当您希望代码等待直到调用完成时,则可以使用同步模式。 异步模式是AJAX调用的常用方法,因为通常在事件上附加一个回调函数,以便您可以在服务器端数据就绪时进行响应,而不必等待数据到达。

  • 问题内容: 我该如何做这项工作 我试图从异步之一获取同步功能,我需要它来使用FreeTds异步查询作为同步之一 问题答案: 使用deasync-用C ++编写的模块,它将Node.js事件循环暴露给JavaScript。该模块还公开了一个函数,该函数阻止后续代码,但不阻止整个线程,也不引起繁忙的等待。您可以将函数放入循环中:

  • 我对一个异步函数有点拘泥于此。 我要完成的是创建一个batchProcessing函数(batchGetSubs),它将循环访问一组文件,读取一个ID,然后发出一个API请求,等待一个响应(问题),然后用格式化的数据写入一个新文件。 问题--我尝试了异步和等待,以及推送承诺和尝试使用承诺.所有这些都是为了等待承诺的解决,但没有成功。当前的行为是,在API调用实际返回所有数据之前,我获取Promis

  • 异步Log日志 use AsyncLog; yield AsyncLog::info('hello world'); yield AsyncLog::debug('test debug', ['foo' => 'bar']); yield AsyncLog::notice('hello world',[], 'group.com'); yield Async

  • 我正在使用Kafka客户端1.0.0库中的KafkaProducer,根据文档,该方法是