小编chi*_*fet的帖子

如何拒绝来自内部的承诺

这可能是一个愚蠢的问题,但是中间的承诺链,你如何拒绝来自其中一个函数的承诺呢?例如:

someActionThatReturnsAPromise()
    .then(function(resource) {
        return modifyResource(resource)
    })
    .then(function(modifiedResource) {
        if (!isValid(modifiedResource)) {
            var validationError = getValidationError(modifiedResource);
            // fail promise with validationError
        }
    })
    .catch(function() {
        // oh noes
    });
Run Code Online (Sandbox Code Playgroud)

不再引用原始的解析/拒绝功能或PromiseResolver.我应该添加return Promise.reject(validationError);吗?

javascript promise

77
推荐指数
1
解决办法
4万
查看次数

NSError和__autoreleasing

有人可以__autoreleasing在下面的示例代码块中向我解释一下目的吗?

- (void)execute:(NSError * __autoreleasing *)error {
    // do stuff, possibly assigning error if something went wrong
}
Run Code Online (Sandbox Code Playgroud)

我删除了__autoreleasing所有东西似乎仍然编译/运行正常.我开始使用obj-c后ARC,所以我从来没有真正学过/理解所有那些双下划线的东西.我已阅读ARC过渡指南,但我不完全了解他们的NSError示例.

objective-c automatic-ref-counting

36
推荐指数
1
解决办法
2万
查看次数

URL哈希在重定向之间保持不变

出于某种原因,非IE浏览器似乎在发送服务器端重定向(使用Location头)时保留URL哈希(如果存在).例:

// a simple redirect using Response.Redirect("http://www.yahoo.com");
Text.aspx
Run Code Online (Sandbox Code Playgroud)

如果我访问:

Test.aspx#foo
Run Code Online (Sandbox Code Playgroud)

在Firefox/Chrome中,我被带到:

http://www.yahoo.com#foo
Run Code Online (Sandbox Code Playgroud)

谁能解释为什么会这样?我已经在不同的平台上尝试了各种服务器端重定向(虽然所有这些都导致了Location头),但这似乎总是发生.我没有在HTTP规范中看到它,但它似乎确实是浏览器本身的问题.URL哈希(如预期的那样)永远不会发送到服务器,因此服务器重定向不会被它污染,浏览器只是出于某种原因持久化它.

有任何想法吗?

url hash redirect http fragment

35
推荐指数
2
解决办法
1万
查看次数

如何使用CSS旋转+翻转元素

transform属性允许您旋转或翻转,但是如何同时执行这两个操作?假设我想将元素旋转90度并水平翻转?两者都使用相同的属性,因此后者会覆盖前者.为方便起见,这是一个示例小提琴:

http://jsfiddle.net/DtNh6/

transform: rotate(90deg);
transform: scaleX(-1);
Run Code Online (Sandbox Code Playgroud)

css css3 css-transforms

25
推荐指数
3
解决办法
4万
查看次数

用于刷新页面的chrome扩展API

是否有一个API以编程方式从浏览器操作按钮内刷新当前选项卡?我配置了后台页面,它通过以下方式附加一个监听器:

chrome.browserAction.onClicked.addListener(function(tab) { ... });
Run Code Online (Sandbox Code Playgroud)

因此,回调函数检索对其单击的选项卡的引用,但我没有在任何地方看到API来刷新/重新加载该选项卡.

google-chrome google-chrome-extension

22
推荐指数
5
解决办法
3万
查看次数

适用于iOS的obj-c中日期格式模式的完整列表

是否有支持日期格式模式/令牌的实际全面列表?我一直在关注API文档,他们提到了其中一些,例如MM,但其余的是哪里?

objective-c nsdateformatter date-formatting ios ios6

15
推荐指数
2
解决办法
2万
查看次数

嵌套的MVC通信模式

这完全是一种最佳实践类型问题,因此语言无关紧要.我理解MVC的基本原理,并且它有不同的,微妙的风格(即视图直接引用模型而不是控制器的数据委托).

我的问题是关于跨MVC通信,当这些MVC嵌套时.一个例子是绘图程序(如Paint或其他东西).Canvas本身可以是MVC,但每个绘制的实体也可以(例如Shapes,Text).从型号上来看,是有意义的CanvasModel有实体的集合,而是应该CanvasViewCanvasController分别有实体视图和控制器相应的收藏?

另外,添加新绘制实体的最佳/最干净的方法是什么?假设用户激活了CircleTool,他们在"画布"视图中单击并开始绘制形状.该CanvasView可发射相关的鼠标按下/移动/向上的事件CanvasController可以听.然后,控制器可以基本上将这些事件代理到CircleTool(状态模式).鼠标按下时,CircleTool会想要创建一个新的Circle.工具是否应该CircleEntityController直接创建并调用类似的东西canvasController.addEntity(circleController)?创建Circle的模型和视图的责任应该放在哪里呢?

对不起,如果这些问题有点模糊:)

- 编辑 -

这是我正在谈论的伪代码示例:

CircleTool {
    ...
    onCanvasMouseDown: function(x, y) {
        // should this tool/service create the new entity's model, view, and controller?
        var model = new CircleModel(x, y);
        var view = new CircleView(model);
        var controller = new CircleController(model, view);

        // should the canvasController's add method take in all 3 components
        // and then add them to their respective endpoints?
        this.canvasController.addEntity(model, view, …
Run Code Online (Sandbox Code Playgroud)

model-view-controller design-patterns

15
推荐指数
1
解决办法
2589
查看次数

避免使用promises进行嵌套回调

我仍然是使用Promise API的新手,我正在努力避免如何避免深度嵌套的Promise链,据我所知,这是使用Promise的好处之一.使用以下伪代码作为示例,当后续的依赖于先前的上下文时,如何避免嵌套Promise?

function loadDependency1() {
    // return a promsise to load the first dependency
}

function loadDependency2(dependency1) {
    // return a promise to load the second dependency, which relies on the first dependency
}

function loadDependency3(dependency2) {
    // return a promise to load the third dependency, which relies on the second dependency
}

function doWork(dependency1, dependency2, dependency3) {
    // finally have all the things necessary to do work
}

// load all the dependencies and eventually doWork
loadDependency1().then(function(dependency1) {
    return …
Run Code Online (Sandbox Code Playgroud)

javascript promise

15
推荐指数
1
解决办法
4265
查看次数

在iOS中使类"线程安全"

我正在阅读关于线程安全的Apple文档,而且我并不完全清楚(在实践中)真正构成一个线程安全的类.为了更好地理解这一点,为了使线程安全(以及为什么),将需要对下面的类进行什么操作?

#import "UnsafeQueue.h"

@interface UnsafeQueue()

@property (strong, nonatomic) NSMutableArray *data;

@end

@implementation UnsafeQueue

- (id)peek {
    return [self.data firstObject];
}

- (NSUInteger)length {
    return [self.data count];
}

- (void)enqueue:(id)datum {
    [self.data addObject:datum];
}

// other methods omitted...

@end
Run Code Online (Sandbox Code Playgroud)

只需创建一个ivar NSLock,然后锁定/解锁与底层NSMutableArray的所有交互?

长度方法,只是要求数组的计数,也需要这样做吗?

objective-c thread-safety ios

11
推荐指数
3
解决办法
5949
查看次数

何时使用 @ImportAutoConfiguration 与 @Import

我对文档不太清楚何时使用其中一种或另一种。从我尝试过的事情来看,他们似乎都有相同的行为。到底有什么区别?

spring spring-boot

9
推荐指数
1
解决办法
6018
查看次数